home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / CRS / crs17.d81 / war.sda / WAR.MAIN (.txt) < prev   
Commodore BASIC  |  2009-10-10  |  5KB  |  143 lines

  1. 5 POKE52,32:POKE56,32:CLR
  2. 11 LF$="B.WAR SPRITES4":AD=14592:GOSUB20
  3. 13 LF$="WAR CELLS":AD=32062:GOSUB20
  4. 15 LF$="SPLIT SCREEN.O":AD=853:GOSUB20
  5. 17 LF$="MEGADATA":AD=49152:GOSUB20
  6. 18 GOTO 93
  7. 20 H%=AD/256:L%=AD-H%*256
  8. 25 OPEN1,8,1,LF$+",P,R":POKE185,0:POKE780,0:POKE781,L%:POKE782,H%:SYS65493:CLOSE1:RETURN
  9. 93 :
  10. 100 MS%=135:POKE53247,1
  11. 101 DIMS(1),A(1),F(1),X(1),Y(1):POKE851,1:SYS853:V=RND(-TI):YY=1
  12. 102 GOSUB1001:S(0)=0:S(1)=0:PL=0:S0=0:S1=0:FORZZ=1TOYY:A(0)=0:A(1)=0:F(0)=0:F(1)=0
  13. 200 FY$=STR$(INT(RND(1)*MS%)+1):FY$="S"+RIGHT$(FY$,LEN(FY$)-1):IFFY$=FZ$THEN20
  14. 205 FZ$=FY$:POKE16589,0:POKE16591,0:GOSUB1540:IFEN<>0THEN200
  15. 206 F1%=(FZ$="S123"ORFZ$="S119"):F2%=(FZ$="S124"ORFZ$="S120")
  16. 210 YU%=0:IFF1%THENPOKEV+14,168:POKEV+15,134:POKE2047,228
  17. 215 X%=INT(RND(1)*9)*(INT(RND(0)*2)*2-1)*16:IFW%=0THENX%=0
  18. 217 PRINT"[147]":SYS49152:PRINT"[144]WIND: ";
  19. 220 IFX%=0THEN222
  20. 221 FORJ=1TO9-ABS(X%/16):PRINTCHR$(SGN(X%)+61);:NEXT
  21. 222 PRINTTAB(20)"BATTLE:"ZZ"/"YY""
  22. 230 PL=1-PL:IF(S(1)-S1)>(S(0)-S0)THENPL=1
  23. 235 IF(S(0)-S0)>(S(1)-S1)THENPL=0
  24. 236 S0=S(0):S1=S(1)
  25. 237 IFZR%=1THENZR%=0:PL=1-PL
  26. 240 PRINT"";:POKE646,PL:PRINT"PLAYER1 :"S(1);TAB(20);
  27. 250 POKE646,1-PL:PRINT"PLAYER2 :"S(0)
  28. 260 POKEV+21,15:POKE2042,241:POKE2043,240:POKEV+39,0:POKEV+40,11
  29. 270 POKEV+41,0:POKEV+42,11:POKE2040,248:POKE2041,248
  30. 280 IFF1%ORF2%THENPOKEV+28,128:IFF1%THENPOKE2047,228
  31. 281 POKEV+46,0:IFF2%THENPOKE2047,229
  32. 282 IFYU%=0AND(F1%ORF2%)THENPOKEV+21,143
  33. 290 Y(0)=PEEK(16584)*16+45:Y(1)=PEEK(16586)*16+45:BY(0)=Y(0):BY(1)=Y(1)
  34. 300 X(0)=PEEK(16585)*16+20:X(1)=PEEK(16587)*16+20
  35. 310 FORJ=0TO1:POKEV+J*2+4,X(J)AND255:BX(J)=X(J)+((J=0)*2+1)*6
  36. 320 POKEV+J*2,BX(J)AND255:POKEV+J*2+1,Y(J)+3:POKEV+J*2+5,Y(J):NEXTJ:POKE851,0
  37. 330 POKEV+16,INT(X(0)/256)*4+INT(X(1)/256)*8+INT(BX(0)/256)+INT(BX(1)/256)*2
  38. 340 IFF2%THENPOKEV+16,PEEK(V+16)+128:POKEV+14,0:POKEV+15,146
  39. 402 POKE53265,27:GOSUB1200:POKE53232,203:POKE53233,0:A=A(PL)*(null)/180
  40. 412 F=INT(F(PL)*(20/13.8)+.5):POKE53206+PL,COS(A)*F:POKE53208+PL,(PL=0)*-1
  41. 415 POKE53214+PL,SIN(A)*F:POKE53216+PL,1:POKE53218,ABS(X%):POKE53219,1-(SGN(X%)/2+.5)
  42. 417 POKE53220,PL:POKE53227,0:POKE53200,PEEK(V):POKE53201,PEEK(V+2):POKE53202,0
  43. 418 POKE53203,0:POKE53204,PEEK(V+16)AND1:POKE53205,(PEEK(V+16)AND2)/2
  44. 419 POKE53210,PEEK(V+1):POKE53211,PEEK(V+3):POKE53212,0:POKE53213,0
  45. 420 FORJ=1TO10:A=PEEK(V+31):A=PEEK(V+30):NEXT
  46. 440 POKE53234,0:POKE53235,64:POKES+18,129:POKES+18,128:POKES+11,17
  47. 460 SYS49486:POKES+11,16:SC=PEEK(53226)
  48. 462 ONPEEK(53229)GOTO600,480,490,230
  49. 480 GOSUB800:GOTO700
  50. 490 GOSUB800:GOTO720
  51. 600 POKES+4,129:POKES+4,128:POKEV+39+PL,1:FORJ=248TO252:POKE2040+PL,J
  52. 610 FORI=1TO10:NEXTI,J:A=PEEK(V+30):GOSUB1350
  53. 615 FORJ=251TO248STEP-1:POKE2040+PL,J:FORI=1TO10:NEXTI,J:POKEV+39+PL,11*PL
  54. 620 IF(AAND((PL+1)*5))=((PL+1)*5)THENSC=1:GOTO700
  55. 630 IF(AAND(PL*-3+9))=PL*-3+9THENSC=2:GOTO720
  56. 635 ZR%=0:IF(AAND(129+PL))=129+PLTHENSC=2:ZR%=1:GOTO720
  57. 640 GOTO230
  58. 700 FORJ=245-PL*3TO247-PL*3:POKE2042+PL,J:FORI=1TO30:NEXTI,J
  59. 710 S(1-PL)=S(1-PL)+SC:GOTO900
  60. 720 FORJ=242+PL*3TO244+PL*3:POKE2043-PL,J:FORI=1TO30:NEXTI,J
  61. 730 S(PL)=S(PL)+SC:IFZR%=1THENYU%=1:GOSUB1630:GOTO230
  62. 740 GOTO900
  63. 800 POKES+4,129:POKES+4,128:POKEV+39+PL,1:FORJ=248TO252:POKE2040+PL,J
  64. 810 FORI=1TO10:NEXTI,J:POKE53280,1:GOSUB1350:POKE53280,0
  65. 815 FORJ=251TO248STEP-1:POKE2040+PL,J:FORI=1TO10:NEXTI,J:POKEV+39+PL,11*PL:RETURN
  66. 900 NEXTZZ
  67. 902 PRINT"PLAYER1 :"S(1);TAB(20);"PLAYER2 :"S(0)
  68. 903 IFS(0)<>S(1)THENGOSUB1700
  69. 910 FORJ=1TO2000:NEXT:GOTO102
  70. 1001 S=54272:FORJ=0TO24:POKEJ+S,0:NEXT:POKES+24,15:POKES+6,252:POKES+1,25
  71. 1002 POKES+15,25:POKES+20,249:POKES+13,240:PL=0:POKE851,1
  72. 1010 V=53248:POKE53280,0:POKE53281,6:POKEV+16,0:POKEV+21,0:POKEV+37,8:POKEV+38,7
  73. 1100 PRINT"[147]    WAR![146] BY MARK DEMBROWSKI - 1991"
  74. 1110 PRINTTAB(11)"PRESS FIRE TO PLAY"
  75. 1120 IFPEEK(56320)<>111ANDPEEK(56321)<>239THEN1120
  76. 1130 POKEV+21,0:PRINT"[147]# BATTLES TO PLAY? 1"
  77. 1132 IFPEEK(56320)=111ORPEEK(56321)=239THEN1132
  78. 1133 PRINT""SPC(20)" [157][157][157]"YY
  79. 1134 IFPEEK(56321)=254ORPEEK(56320)=126THENYY=YY+1:IFYY=21THENYY=20
  80. 1135 IFPEEK(56321)=253ORPEEK(56320)=125THENYY=YY-1:IFYY=0THENYY=1
  81. 1136 IFPEEK(56321)=239ORPEEK(56320)=111THEN1139
  82. 1138 GOTO1133
  83. 1139 GOSUB1600:RETURN
  84. 1200 POKES+8,64:POKES+7,0:PO=1:SR=1
  85. 1201 PRINT"[144]ANGLE:     SPEED:    M/S":POKE1872,46:POKE56144,0
  86. 1206 POKES+11,17:POKES+11,16
  87. 1207 POKE(SR-1)*11+1950+(PO-1),30
  88. 1210 AN$=RIGHT$("0"+RIGHT$(STR$(A(PL)),LEN(STR$(A(PL)))-1),2)
  89. 1220 FO$=RIGHT$("00"+RIGHT$(STR$(F(PL)),LEN(STR$(F(PL)))-1),3)
  90. 1230 PRINT"[145][144]ANGLE:"AN$"   SPEED:"FO$
  91. 1240 FB=PEEK(56320+PL):JS=15-(FBAND15):FB=FBAND16
  92. 1250 IFFB=16ANDJS=0THEN1240
  93. 1260 IFJS<>8THEN1270
  94. 1261 POKE(SR-1)*11+1950+(PO-1),32
  95. 1262 PO=PO+1:IFPO=2+SRTHENPO=1:SR=3-SR
  96. 1266 GOTO1206
  97. 1270 IFJS<>4THEN1280
  98. 1271 POKE(SR-1)*11+1950+(PO-1),32
  99. 1272 PO=PO-1:IFPO=0THENSR=3-SR:PO=1+SR
  100. 1275 GOTO1206
  101. 1280 IFJS<>1ORSR<>1THEN1290
  102. 1282 A(PL)=A(PL)+(2-PO)*9+1:IFA(PL)>90THENA(PL)=90
  103. 1284 GOTO1206
  104. 1290 IFJS<>1ORSR<>2THEN1300
  105. 1292 F(PL)=F(PL)+INT(10^(3-PO)):IFF(PL)>140THENF(PL)=140
  106. 1294 GOTO1206
  107. 1300 IFJS<>2ORSR<>1THEN1310
  108. 1302 A(PL)=A(PL)-((2-PO)*9+1):IFA(PL)<0THENA(PL)=0
  109. 1304 GOTO1206
  110. 1310 IFJS<>2ORSR<>2THEN1320
  111. 1312 F(PL)=F(PL)-INT(10^(3-PO)):IFF(PL)<0THENF(PL)=0
  112. 1314 GOTO1206
  113. 1320 IFFB=0ANDJS=0THENA(PL)=VAL(AN$):F(PL)=VAL(FO$):GOTO1340
  114. 1330 GOTO1240
  115. 1340 PRINT"                    ":RETURN
  116. 1350 EX=PEEK(PL*2+V):EY=PEEK(PL*2+V+1):IF(PEEK(V+16)AND(PL+1))=0THEN1390
  117. 1380 EX=EX+256:IF(EX/2)=INT(EX/2)THENEX=EX-1:GOTO1440
  118. 1390 IF(EX/2)=INT(EX/2)THENEX=EX+1
  119. 1440 ER=INT((EY-42)/8):YE=(EY-42)AND7:EC=INT((EX-13)/8):XE=(EX-13)AND7
  120. 1445 J=0:BY=INT(ER/2)*20+INT(EC/2)+16384:IFPEEK(BY)>166ANDPEEK(BY)<190THENJ=1
  121. 1450 YE=YE-6:IFYE<0THENYE=YEAND7:ER=ER-1
  122. 1460 XE=XE-6:IFXE<0THENXE=XEAND7:EC=EC-1
  123. 1470 BY=8192+ER*320+EC*8+YE:XE=(2^(7-XE))*(3/2)
  124. 1480 POKE52000,BYAND255:POKE52001,BY/256:POKE52006,XE
  125. 1490 POKE52003,ERAND255:POKE52004,ECAND255:POKE52005,YE
  126. 1495 IFJ=0THENSYS50300
  127. 1500 RETURN
  128. 1540 POKE851,1
  129. 1545 POKE53265,11:POKE780,LEN(FZ$):POKE781,60:POKE782,3:FORJ=1TOLEN(FZ$)
  130. 1550 POKE827+J,ASC(MID$(FZ$,J,1)):NEXT:SYS65469
  131. 1560 POKE780,0:POKE781,8:POKE782,0:SYS65466
  132. 1580 POKE780,0:POKE781,0:POKE782,64:SYS65493
  133. 1590 OPEN15,8,15:INPUT#15,EN:CLOSE15:RETURN
  134. 1600 PRINT"[147]PRESS DOWN FOR NO WIND, UP FOR WIND"
  135. 1610 IFPEEK(56321)=254ORPEEK(56320)=126THENW%=1:RETURN
  136. 1620 IFPEEK(56321)=253ORPEEK(56320)=125THENW%=0:RETURN
  137. 1625 GOTO1610
  138. 1630 POKEV+28,0:POKE2047,253:POKEV+46,1:POKES+11,17:FORJ=PEEK(V+15)TO1STEP-2
  139. 1640 POKEV+15,J:POKEV+46,J:POKES+8,196-J/2:NEXT:POKES+11,16:RETURN
  140. 1700 IFS(0)>S(1)THEN1710
  141. 1705 FORJ=0TO99:POKE646,J:PRINT"PLAYER1":NEXT:RETURN
  142. 1710 FORJ=0TO99:POKE646,J:PRINT""SPC(20)"PLAYER2":NEXT:RETURN
  143.